package com.soap.desensitize.factory.encry;

/**
 * @dsec 策略类枚举
 */
public enum EStrategy {
    //不可逆加密

    /**
     * @desc 邮箱加密
     */
    EMAIL("com.rj.bd.strategy.irreversible.EmailStrategy"),
    /**
     * @desc HAMC 加密
     */
    HMAC("com.rj.bd.strategy.irreversible.HmacStrategy"),
    /**
     * @desc 身份证替换 加密
     */
    IDCARD("com.rj.bd.strategy.irreversible.IdCardStrategy"),
    /**
     * @desc 手机号替换 加密
     */
    PHONE("com.rj.bd.strategy.irreversible.PhoneStrtegy"),
    /**
     * @desc SHA1 加密
     */
    SHA1("com.rj.bd.strategy.irreversible.Sha1Strategy"),
    /**
     * @desc SHA224 加密
     */
    SHA224("com.rj.bd.strategy.irreversible.Sha224Strategy"),
    /**
     * @desc SHA256 加密
     */
    SHA256("com.rj.bd.strategy.irreversible.Sha256Strategy"),
    /**
     * @desc SHA512 加密
     */
    SHA512("com.rj.bd.strategy.irreversible.Sha512Strategy"),
    /**
     * @desc 手机号后4位 加密
     */
    SUBPHONE("com.rj.bd.strategy.irreversible.SubPhoneNumberStrtegy"),
    /**
     * @desc MD5 加密
     */
    MD5("com.rj.bd.strategy.irreversible.Md5Strategy"),

    //可逆不称加密

    /**
     * @desc RSA 加密
     */
    RSA("com.rj.bd.strategy.rreversible.asymmetric.RsaStrategy"),
    /**
     * @desc DSA 加密
     */
    DSA("com.rj.bd.strategy.rreversible.asymmetric.DsaStrategy"),

    //可逆对称加密

    /**
     * @desc AES 加密
     */
    AES("com.rj.bd.strategy.rreversible.symmetry.AesStrategy"),
    /**
     * @desc DES 加密
     */
    DES("com.rj.bd.strategy.rreversible.symmetry.DesStrategy"),
    /**
     * @desc NUMBER 加密
     */
    NUMBER("com.rj.bd.strategy.rreversible.symmetry.NumStrategy"),
    /**
     * @desc RC4 加密
     */
    RC4("com.rj.bd.strategy.rreversible.symmetry.Rc4Strategy"),
    /**
     * @desc DES3 加密
     */
    DES3("com.rj.bd.strategy.rreversible.symmetry.ThreeDesStrategy");



    EStrategy(String className) {//构造方法
        this.className = className;
    }

    public String getClassName() {
        return className;
    }

    private String className;

    @Override
    public String toString() {
        return className;
    }
}
